function [poblacion, outputMejor] = filtradoGenetico(poblacion,tabladatos,celltickers)
drawdownLB = 0;
drawdownUB = 5000;
seleccionfinal = 4;
global fechaprimera;
%fechaprimera = datenum('01012010','ddmmyyyy');
cartera = length(poblacion(1,:));
sistemassalida=cartera;
for fila=1:length(poblacion(:,1))

 posicionmaximoCoef45=fila;
 outputMejor=outputSistemas(poblacion(posicionmaximoCoef45,poblacion(posicionmaximoCoef45,1:sistemassalida)~=0),tabladatos);
 mejorCombinacion45=poblacion(posicionmaximoCoef45,poblacion(posicionmaximoCoef45,1:sistemassalida)~=0);
 [poblacion(posicionmaximoCoef45,11),poblacion(posicionmaximoCoef45,12),...
    poblacion(posicionmaximoCoef45,13),poblacion(posicionmaximoCoef45,14),...
    poblacion(posicionmaximoCoef45,15),poblacion(posicionmaximoCoef45,16),...
    poblacion(posicionmaximoCoef45,17),poblacion(posicionmaximoCoef45,18)]=RatioMCIM(outputMejor);
 %plot(outputMejor);
 
 if poblacion(posicionmaximoCoef45,14) > drawdownUB || poblacion(posicionmaximoCoef45,14)< drawdownLB...
         length(unique(poblacion(posicionmaximoCoef45,1:sistemassalida)))~=sistemassalida ||...
         sum(poblacion(posicionmaximoCoef45,1:sistemassalida)==0) ~=0
     poblacion(posicionmaximoCoef45,11)=0;
     poblacion(posicionmaximoCoef45,12)=0;
     poblacion(posicionmaximoCoef45,13)=0;
     poblacion(posicionmaximoCoef45,14)=0;
     poblacion(posicionmaximoCoef45,15)=0;
     poblacion(posicionmaximoCoef45,16)=0;
     poblacion(posicionmaximoCoef45,17)=0;
     poblacion(posicionmaximoCoef45,18)=0;
 end

end
%% creo Ratio y ordeno en funcion de eso
for fila=1:length(poblacion(:,1))
     if poblacion(fila,14)~=0
        poblacion(fila,22)=poblacion(fila,12)./poblacion(fila,14);
     end
end
%Filtro de cero
filasEliminar =  poblacion(:,14)==0;
if ~isempty(filasEliminar)
poblacion(filasEliminar,:)=[];
end

 poblacion=sortrows(poblacion,22);
 poblacion=flipud(poblacion);
 
 %clean the portfolio with repeat assets
%  for fila=length(poblacion(:,1)):-1:1
%      if length ( unique (poblacion(fila,1:10))) ~= 10
%          poblacion(fila,:) = [];
%      end
%  end
 
%% Selecciona los mejores y guarda
for seleccion = 1:seleccionfinal
    outputMejor(:,seleccion)=outputSistemas(poblacion(seleccion,1:cartera),tabladatos);
end
style= {'r';'b';'m';'g';'y'} ;
for seleccion=1:seleccionfinal
    plot(outputMejor(:,seleccion),style{seleccion});
    hold on
end

title Combinacion
dateaxis('x', 2, datestr(fechaprimera));
nombre= strcat('MejorCombinacionMemeticoAll_',num2str(cartera));
%legend('rojo' ,'azul','magenta','verde','amarillo');
saveas(gcf, nombre, 'jpeg');

poblacion = poblacion(1:seleccionfinal,:);
titulo =strcat('OutputMejor_',num2str(cartera));
save(strcat(titulo,'.mat'),'outputMejor','poblacion');
%% graficas de 6M y 12M
graficas6M12M;
%% Guarda Excel Final
maximoResultadosseleccion=seleccionfinal;
resultado = num2cell(poblacion(1:maximoResultadosseleccion,:));

for fila=1:maximoResultadosseleccion
    for columna=1:cartera
        if poblacion(fila,columna) ~=0
        numero = poblacion(fila,columna);
        resultado(fila,columna)=cellstr(celltickers(numero,:));
        end
    end
    resultado(fila,15)={datestr(poblacion(fila,15),'yyyymmdd')};
    resultado(fila,16)={datestr(poblacion(fila,16),'yyyymmdd')};
end
titulo =strcat('MejoresCombinaciones_',num2str(cartera));
cell2csv(strcat(titulo,'.csv'), resultado,';',1997,',');%(fileName, cellArray, separator, excelYear, decimal)
%xlsWrite
end


